package com.foreknow.oop9;

import com.foreknow.oop4.Person;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * 异常：非检查性异常（RuntimeException）
 * 检查性异常
 * throws(抛出异常):
 * 语法： public void method() throws Exception{}
 * 说明：在当前的方法中有可能会出现异常，但是在这个方法中我不想处理，谁调用这个方法谁处理
 *
 * 注意：catch中的异常类型一定是由子类型到父类型
 */
public class TestException {
//  public void method()throws Exception {
//
//  }

  public int add(int a, int b) throws Exception {
    if(a < 0 || b < 0) {
      Exception e = new Exception();
      throw e;
    }
    return a+b;
  }


  public static void main(String[] args) {
    TestException test = new TestException();
    try {
      test.add(-1,-2);
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      System.out.println("无论有没有异常，最终都会执行finally中的语句");
    }


//    //方法的调用者要处理异常(try.....catch)
//    try {
//      test.method();
//    }catch (Exception e){
//      System.out.println("出现了异常.....");
//    }

//    FileInputStream fileInputStream = null;
//    try {
//       fileInputStream = new FileInputStream("name");
//       fileInputStream.read();
//
//    } catch (FileNotFoundException e) {
//      e.printStackTrace();
//    } catch (IOException e) {
//      e.printStackTrace();
//    }

  }
}
